package com.hhck.mapper;

import com.hhck.dto.AssignRoleDto;
import com.hhck.entity.Page;
import com.hhck.entity.Role;
import com.hhck.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * user_info表的Mapper接口
 */
@Mapper
public interface UserMapper {

    // 根据账号查询用户
    public User selectUserByUserCode(String userCode);

    // 分页查询用户信息（条件查询）
    public List<User> selectUserByPage(@Param("page") Page page, @Param("user") User user);

    // 查询用户行数（条件查询）
    public Integer selectUserCount(User user);

    // 添加用户
    public int insertUser(User user);

    // 根据用户id更改用户状态（启用或禁用）
    public int updateUserStateByUserId(User user);

    // 根据用户id删除用户（逻辑删除）
    public int deleteUserByUserId(Integer userId);

    // 批量删除用户（逻辑删除）
    public int batchDeleteUser(@Param("userIdList") List<Integer> userIdList);

    // 根据用户id修改用户昵称（注意更新修改者和修改时间）
    public int updateUserNameByUserId(User user);

    // 根据用户id重置密码
    public int updateUserPwdByUserId(@Param("userId") Integer userId, @Param("userPwd") String userPwd);

}

